home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 145 / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan).7z / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan) (Track 1).bin / tools / sharp / sxwork3.lzh / サンプル実用編 / ペイント / GPAINT.H < prev    next >
Text File  |  1994-03-10  |  9KB  |  259 lines

  1. /******************************************************************************
  2.  *    gpaint.h:    グラフィックペイント用ヘッダファイル
  3.  ******************************************************************************
  4.  *    Workroom SX-68K Sample Program Copyright 1994 SHARP
  5.  *
  6.  *    定数定義
  7.  */
  8. /* ウィンドウタイトル */
  9. #define WINTITLE    "ペイント"
  10.  
  11. /* ウィンドウサイズ */
  12. #define WIN_H        480        /* ウィンドウの幅    */
  13. #define WIN_V        256        /* ウィンドウの高さ    */
  14.  
  15. /* 数値調整ボタンのリピート時間(1/100秒単位)*/
  16. #define ADJFIRST    40        /* リピート開始時間    */
  17. #define ADJNEXT        12        /* リピート間隔        */
  18.  
  19. #define COLOR        0        /* カラー選択ウィンドウ        */
  20. #define PALET        1        /* パレット設定ウィンドウ    */
  21. #define TOOL        2        /* ツール選択ウィンドウ        */
  22. #define LUPE        3        /* ルーペウィンドウ        */
  23. #define SUBMAX        4
  24. #define TOOLMAX        5
  25.  
  26. /* イベントマスク */
  27. #define EVENTMASK    (EM_MSLDOWN | EM_UPDATE | EM_ACTIVATE | EM_SYSTEM1 | EM_SYSTEM2)
  28. /*
  29.  *    構造体宣言
  30.  */
  31. typedef struct ComVal {            /* 共通変数            */
  32.     Window *windowPtr;        /* ウィンドウポインタ        */
  33.     BOOLEAN activeFlag;        /* アクティブフラグ        */
  34.     TsEvent event;            /* イベントレコード        */
  35.     int eventMask;            /* イベントマスク        */
  36.     int errorCode;            /* エラーコード            */
  37.     BOOLEAN endFlag;        /* 終了フラグ            */
  38.  
  39.     int argc;            /* コマンドライン引数の個数    */
  40.     char **argv;            /* コマンドライン引数        */
  41.     Rect nowWinSize;        /* 現在のウィンドウサイズ    */
  42.     Rect pictSize;            /* 絵のサイズ            */
  43.     /* 疑似ダイアログで入力された絵のサイズ */
  44.     Point ptPicXY;
  45.     char fileName[TS_NAMEMAX];    /* ファイル名            */
  46.     int fileMode;            /* ファイル入出力モード        */
  47.     int sizeDlg;            /* サイズ変更疑似ダイアログON/OFF */
  48.     BOOLEAN editFlag;        /* 編集フラグ            */
  49.  
  50.     /* ファイル名用テキストエディットハンドル */
  51.     TEdit **fTEditHdl;
  52.     /* 文字入力用テキストエディットハンドル */
  53.     TEdit **mTEditHdl;
  54.  
  55.     Subwin *subwinPtr[SUBMAX];    /* サブウィンドウポインタ    */
  56.     Region **subRgnHdl[SUBMAX];    /* サブウィンドウのリージョンハンドル */
  57.  
  58.     /* スライドボリュームのコントロールハンドル R:[0]、G:[1]、B:[2] */
  59.     Control **RGBSlvHdl[3];
  60.     /* 数値調整ボタンのコントロールハンドル R:[0]、G:[1]、B:[2] */
  61.     Control **RGBBtnHdl[3];
  62.     /* パレット設定ウィンドウの[設定]ボタンのコントロールハンドル */
  63.     Control **setBtnHdl;
  64.     /* パレット設定ウィンドウの[取消]ボタンのコントロールハンドル */
  65.     Control **canBtnHdl;
  66.     /* ツール選択ウィンドウのスライドボリュームのコントロールハンドル */
  67.     Control **slvHHdl;
  68.     /* ツール選択ウィンドウのスライドボリュームのコントロールハンドル */
  69.     Control **slvVHdl;
  70.     /* 疑似ダイアログの[設定]/[実行]ボタンのコントロールハンドル */
  71.     Control **eSetBtnHdl;
  72.     /* 疑似ダイアログの[取消]ボタンのコントロールハンドル */
  73.     Control **eCanBtnHdl;
  74.     /* 数値調整ボタンのコントロールハンドル X:[0]、Y:[1] */
  75.     Control **adjBtnHdl[2];
  76.     /* スライドボリュームのコントロールハンドル X:[0]、Y:[1] */
  77.     Control **eSlvHdl[2];
  78.  
  79.     Handle resMap;            /* リソースマップのハンドル    */
  80.     RectImg **eraserImg;        /* 消しゴム用ビットイメージ    */
  81.     RectImg **penImg[8];        /* ペンパターン用ビットイメージ    */
  82.     RectImg **tileImg[12];        /* タイルパターン用ビットイメージ */
  83.     RectImg **tlBtnImg[21];        /* ツールボタン用ビットイメージ    */
  84.     RectImg **plBtnImg[3];        /* パレットボタン用ビットイメージ */
  85.     MsCsr **mousePtn;        /* マウスポインタのパターン    */
  86.  
  87.     Graph offGraph;            /* オフスクリーン用グラフレコード */
  88.     Bits **offBitsHdl[2];        /* オフスクリーン用ビッツハンドル */
  89.     /* オフスクリーン用グラフ作成完了フラグ */
  90.     BOOLEAN offGraphOK;
  91.     Graph wkGraph;            /* ワーク用グラフレコード    */
  92.     Bits **wkBitsHdl;        /* ワーク用ビッツハンドル    */
  93.     BOOLEAN wkGraphOK;        /* ワーク用グラフ作成完了フラグ    */
  94.  
  95.     unsigned long clickTime;    /* マウス左ボタンのクリック時刻    */
  96.     int paletNo;            /* パレット番号            */
  97.     int toolKind;            /* 現在使用中のツールの種類(0-7) */
  98.     /* 各ツールに対して選択されているモードボタンの状態(図形、ブラシ、
  99.        倍率等)[4] のルーペのみ上位16ビットがツール、下位16ビットが倍率 */
  100.     int toolStat[8];
  101.     /* ルーペのサブアイコンの表示状態 0:倍率、1:ツール */
  102.     short lupeStat;
  103.     Point penSize;            /* 描画ペンサイズ        */
  104.     Point brushSize;        /* 描画ブラシサイズ        */
  105.     Point radius;            /* ラウンドレクタングルの半径    */
  106.     int ptrnNo;            /* ペンパターン番号        */
  107.     /* ペンパターンのフォア/バックグラウンドカラー切り替えフラグ */
  108.     int foreBack;
  109.     /* ペンパターンのフォアグラウンドカラー(0)、バックグラウンドカラー(1) */
  110.     int ptrnColor[3];
  111.     BOOLEAN ptrnUse;        /* ペンパターン使用フラグ    */
  112.     int paletBuf[16];        /* パレットデータ(設定後)    */
  113.     int oldPaletBuf[16];        /* パレットデータ(設定前)    */
  114.     /* 文字ボタン([設定]/[取消])使用不可フラグ */
  115.     BOOLEAN disableBtn;
  116.     short lupeRate;            /* 拡大比率 0:×4 1:×8        */
  117.     int lupeTool;            /* ルーペ使用前のツールの保存    */
  118.     BOOLEAN moveLock;        /* ルーペの拡大範囲の移動禁止フラグ */
  119.     Rect rcLupe;            /* 拡大範囲のレクタングル    */
  120.     BOOLEAN undoFlag;        /* UNDOのオンオフ        */
  121.     /* オフスクリーン用ビッツのインデックス(UNDO使用時に入れ換え)    */
  122.     unsigned short offIdx;
  123.     BitImg brushImg[16];        /* 選択中ブラシのビットイメージ    */
  124. } ComVal;
  125. /*
  126.  *    外部変数宣言
  127.  */
  128. extern int OldFC;
  129. extern int OldBC;
  130. extern int OldPM;
  131. extern Point OldPS;
  132. extern int OldFM;
  133.  
  134. extern int PaletOrg[16];
  135. extern Rect pb1size;
  136.  
  137. extern Rect brrect;            /* ブラシ用レクタングル        */
  138. /* ファイルネーム入出力用疑似ダイアログレクタングル */
  139. extern Rect rcFdlg;
  140. /* ファイル入出力用疑似ダイアログのビューレクタングル */
  141. extern Rect rcView;
  142. /*
  143.  *    関数プロトタイプ
  144.  */
  145. /* gpmain.c */
  146. BOOLEAN init(ComVal *);
  147. void initVal(ComVal *);
  148. BOOLEAN createWindow(ComVal *);
  149. void idleEvent(ComVal *);
  150. void msLDownEvent(ComVal *);
  151. void msRDownEvent(ComVal *);
  152. void selectMenu(ComVal *);
  153. void keyDownEvent(ComVal *);
  154. void updateEvent(ComVal *);
  155. void drawGraph(ComVal *);
  156. void activateEvent(ComVal *);
  157. void systemEvent(ComVal *);
  158. void dropIcon(ComVal *);
  159. void showErrDialog(ComVal *);
  160. void endProc(int, ComVal *);
  161. void setGraph(Window *, int);
  162. void repeatAdjBtn(ComVal *, Window *, Control **, Control **, int, int);
  163. void addUpdate(Window *, Rect *);
  164.  
  165. /* gpaint.c */
  166. void paintFig(ComVal *, LPoint);
  167. void drawFig(ComVal *, Rect *);
  168. void paintRgn(ComVal *, LPoint);
  169. BOOLEAN makeRgn(ComVal *, Point *, int, Rect *);
  170. void paintPen(ComVal *, LPoint);
  171. void paintOfDomain(ComVal *, LPoint);
  172. void paintBrush(ComVal *, LPoint);
  173. void brushing(ComVal *, Region **, Point *, Point *, Point *);
  174. void dispEseDlg(ComVal *, int);
  175. void newPicture(ComVal *);
  176. void saveDataForUndo(ComVal *);
  177. void execUndo(ComVal *);
  178.  
  179. /* gpsubwin.c */
  180. BOOLEAN createSubwin(ComVal *);
  181. BOOLEAN openSubwin(ComVal *, int);
  182. BOOLEAN createSubControl(ComVal *, int);
  183. void msLDownSubwin(ComVal *, int);
  184. BOOLEAN checkPctBtn(ComVal *, Rect *, LPoint, int);
  185. void revFillRect(Rect *);
  186. void revFrameRect(Rect *);
  187. BOOLEAN dragSubwin(ComVal *, Rect *, LPoint, LPoint, int);
  188. void drawSubwin(ComVal *, int);
  189. void drawSubTitleBar(ComVal *, int);
  190. void dispSubwin(ComVal *, BOOLEAN);
  191. void disposeSubwin(ComVal *, int);
  192.  
  193. /* gpcolor.c */
  194. void colorMsLDown(ComVal *);
  195. void drawColorWnd(ComVal *);
  196. void drawPenPtnImg(ComVal *);
  197. void drawFBBtn(ComVal *);
  198. int selectPalet(ComVal *, int *);
  199. void changePalet(ComVal *, int, int);
  200. void calcColorPctBtn(int, Rect *);
  201. void calcTilePctBtn(int, Rect *);
  202. void calcFBPctBtn(int, Rect *);
  203.  
  204. /* gppalet.c */
  205. void paletMsLDown(ComVal *);
  206. void drawPaletWnd(ComVal *);
  207. void drawPaletCtrl(ComVal *);
  208. void setPalet(int *);
  209.  
  210. /* gptool.c */
  211. void toolMsLDown(ComVal *);
  212. void drawToolWnd(ComVal *);
  213. void drawToolCtrl(ComVal *);
  214. void drawNowImg(ComVal *);
  215. int selectTool(ComVal *, int *);
  216. void calcToolPctBtn(int, Rect *);
  217. void changeTool(ComVal *, int);
  218. void changeToolSubBtn(ComVal *, int);
  219. void drawToolSubBtn(ComVal *, int);
  220.  
  221. /* gplupe.c */
  222. void moveLupeRect(ComVal *, LPoint);
  223. void dispLupeRect(ComVal *);
  224. void lupeMsLDown(ComVal *);
  225. void paintLupePen(ComVal *);
  226. void paintLupeOfDomain(ComVal *);
  227. void drawLupeWnd(ComVal *);
  228. void drawLupeSubIcon(ComVal *);
  229. void drawLupeRect(ComVal *);
  230. void changeLupeRate(ComVal *, int);
  231.  
  232. /* gpfile.c */
  233. void checkFileDlg(ComVal *, LPoint);
  234. void execFileDlg(ComVal *, int);
  235. void loadFile(ComVal *, char *);
  236. BOOLEAN readFile(ComVal *, FILE *, Bits ***);
  237. void saveFile(ComVal *, char *);
  238. BOOLEAN loadResource(ComVal *);
  239. BOOLEAN getResIdn(int, int, int, _Handle *);
  240. BOOLEAN checkDrive(char *, int, int);
  241.  
  242. /* gpsub.c */
  243. BOOLEAN createOffScreen(ComVal *);
  244. BOOLEAN preperaFInOut(ComVal *);
  245. BOOLEAN createSizeSetCtrl(ComVal *);
  246. void checkSizeDlg(ComVal *);
  247. void changePicSize(ComVal *, BOOLEAN);
  248. void clearEseDlg(ComVal *);
  249.  
  250. void makeRect(LPoint, LPoint, Rect *, Rect *);
  251. void ajustPoint(Point *, Point *, Rect *);
  252. void ajustEndPoint(LPoint, Point *, Rect *);
  253. void setFBColor(ComVal *);
  254. void changeWinSize(ComVal *, Rect *);
  255. void allUpdate(ComVal *);
  256. void plusRectImg(RectImg **, RectImg **, LPoint, LPoint, int);
  257. void makeBitmap(RectImg *, Bitmap *, int, short);
  258. void changeUndo(ComVal *);
  259.